# -*- coding: utf-8 -*-
"""
Created on Tue May 28 17:06:55 2024

@author: 29865
"""

from sklearn.linear_model import LinearRegression as LR
import pandas as pd
import numpy as np

data = pd.read_excel('发电场数据.xlsx')

x = data.iloc[:, 0:4].to_numpy()
y = data.iloc[:, 4].to_numpy()

lr = LR()  # 利用LR创建线性回归对象lr
lr.fit(x, y)  # 调用lr对象中的fit()方法，对数据进行拟合训练
Slr = lr.score(x, y)   # 判定系数 R^2 越大越好

c_x = lr.coef_        # x对应的回归系数
c_b = lr.intercept_    # 回归系数常数项

x1 = np.array([28.4, 50.6, 1011.9, 80.54])
x1 = x1.reshape(1, 4)
R1 = lr.predict(x1)  # 可以利用lr对象中的predict()方法进行预测

# 也可以利用线性回归方程式进行预测，这个方法需要自行计算
r1 = x1*c_x
R2 = r1.sum()+c_b
